package com.gopay.common.constants.trans;

import com.gopay.common.constants.txncd.IntTxnCd;

/**
 * 记账点枚举类
 * 
 * @AccountingPoint.java
 * @author fanghw
 * @2013-8-15 上午9:23:38 www.gopay.com.cn Inc.All rights reserved.
 */
public enum AccountingPoint {

    /** 【在线支付】正常流程 */
    _00100_DEFAULT("1"),

    /** 【在线支付】通用分账收取手续费 */
    _00100_FEE("11"),
    /** 【在线支付】重复支付 */
    _00100_REPEAT_PAY("2"),

    /** 【大宗入金】正常流程 */
    _00200_DEFAULT("1"),

    /** 【大宗划拨收益】正常流程 */
    _00201_DEFAULT("1"),

    /** 【大宗出金】正常流程 */
    _00202_DEFAULT("1"),
    
    /** 【大宗市场入金】正常流程 */
    _00207_DEFAULT("1"),

    /** 【担保支付申请】 正常流程 */
    _00400_DEFAULT("1"),
    /** 【担保支付申请】 重复支付 */
    _00400_REPEAT_PAY("2"),

    /** 【担保支付完成】 正常流程 */
    _00401_DEFAULT("1"),
    /** 【担保支付完成】 部分完成 */
    _00401_PART_COMPLETE("2"),

    /** 【担保支付取消】 虚拟账户支付 取消 */
    _00402_ACCOUNT("1"),
    /** 【担保支付取消】 银行卡支付 申请 */
    _00402_BANK_APPLY("1"),
    /** 【担保支付取消】 银行卡支付 审核通过 */
    _00402_BANK_AUDIT_AGREE("11"),

    /** 【充值】 正常流程 */
    _00500_DEFAULT("1"),
    /** 【充值】 重复支付 */
    _00500_REPEAT_PAY("2"),
    /** 【充值】 信用卡充值 */
    _00500_CREDIT_CARD("3"),

    /** 【上缴保证金】 正常流程 */
    _00501_DEFAULT("1"),

    /** 【返还保证金】 正常流程 */
    _00502_DEFAULT("1"),

    /** 【代扣服务费】 正常流程 */
    _00600_DEFAULT("1"),
    
    /** 【申请证书服务费】 正常流程 */
    _00601_DEFAULT("1"),
    /** 【更新证书服务费】 正常流程 */
    _00602_DEFAULT("1"),
    /** 【鉴权服务费】 正常流程 */
    _00603_DEFAULT("1"),
    /** 【实名认证服务费】 正常流程 */
    _00604_DEFAULT("1"),
    /** 【退款证书服务费】 正常流程 */
    _00605_DEFAULT("1"),
    /** 【网关分账】 正常流程 */
    _00606_DEFAULT("1"),
    /** 【付款到银行】 申请 */
    _00700_APPLY("1"),
    /** 【付款到银行】 审核通过 */
    _00700_AUDIT_AGREE("11"),
    /** 【付款到银行】 审核拒绝 */
    _00700_AUDIT_REFUSE("12"),

    /** 【退款转账】 申请 */
    _00701_APPLY("1"),
    /** 【退款转账】 审核通过 */
    _00701_AUDIT_AGREE("11"),
    /** 【退款转账】 审核拒绝 */
    _00701_AUDIT_REFUSE("12"),
    
    /** 【提现】 申请 */
    _00800_APPLY("1"),
    /** 【提现】 审核通过 */
    _00800_AUDIT_AGREE("11"),
    /** 【提现】 审核拒绝 */
    _00800_AUDIT_REFUSE("12"),

    /** 【付款到国付宝】 正常流程 */
    _00900_DEFAULT("1"),

    /** 【付款到关联账户】 正常流程 */
    _00901_DEFAULT("1"),

    /** 【解锁保证金收取手续费】 正常流程 */
    _01101_DEFAULT("1"),

    /** 【收款类退款】虚拟账户 */
    _01200_ACCOUNT("1"),
    /** 【收款类退款】虚拟账户,分账的情况 */
    _01200_ACCOUNT_11("11"),
    /** 【收款类退款】银行卡支付 申请 */
    _01200_BANK_APPLY("1"),
    /** 【收款类退款】银行卡支付 审核通过 */
    _01200_BANK_AUDIT_AGREE("11"),
    /** 【收款类退款】银行卡支付 审核拒绝 */
    _01200_BANK_AUDIT_REFUSE("12"),

    /** 【付款类退款】 申请 */
    _01201_APPLY("1"),
    /** 【付款类退款】 审核通过 */
    _01201_AUDIT_AGREE("11"),
    /** 【付款类退款】 审核拒绝 */
    _01201_AUDIT_REFUSE("12"),

    /** 【分账退款】 申请 */
    _01202_APPLY("1"),

    /** 【分账退款】 拒绝 */
    _01202_REFUSE("12"),

    /** 航空票务【收款类退款】虚拟账户 */
    _01203_ACCOUNT("1"),
    /** 航空票务【收款类退款】银行卡支付 申请 */
    _01203_BANK_APPLY("1"),
    /** 航空票务【收款类退款】银行卡支付 审核通过 */
    _01203_BANK_AUDIT_AGREE("11"),
    /** 航空票务【收款类退款】银行卡支付 审核拒绝 */
    _01203_BANK_AUDIT_REFUSE("12"),

    /** 航空票务【付款类退款】 申请 */
    _01204_APPLY("1"),
    /** 【付款类退款】 审核通过 */
    _01204_AUDIT_AGREE("11"),
    /** 【付款类退款】 审核拒绝 */
    _01204_AUDIT_REFUSE("12"),

    /** 【收益结算】 审核通过 */
    _09700_AUDIT_AGREE("1"),

    /** 【冻结金额】 正常流程 */
    _09802_DEFAULT("1"),

    /** 【 解锁金额】 正常流程 */
    _09803_DEFAULT("1"),

    /** 【银行卡重复支付冲正】 申请 */
    _09900_APPLY("1"),
    /** 【银行卡重复支付冲正】 审核通过 */
    _09900_AUDIT_AGREE("11"),

    /** 【信用卡充值冲正】 申请 */
    _09901_APPLY("1"),
    /** 【信用卡充值冲正】 审核通过 */
    _09901_AUDIT_AGREE("11"),


    /** 【手工调账】 申请 */
    _09800_APPLY("1"),
    /** 【手工调账】 审核通过 */
    _09800_AUDIT_AGREE("11"),
    /** 【手工调账】 审核拒绝 */
    _09800_AUDIT_REFUSE("12"),

    /** 【P2P充值】 正常流程 */
    _01300_DEFAULT("1"),
    /** 【P2P充值】 重复支付流程 */
    _01300_REPEAT_PAY("2"),

    /** 【P2P转账】 正常流程 */
    _01302_DEFAULT("1"),
    /** 【P2P投标完成】 正常流程 */
    _01303_DEFAULT("1"),

    /** 【P2P提现到银行卡】 申请 */
    _01301_APPLY("1"),
    /** 【P2P提现到银行卡】 审核通过 */
    _01301_AUDIT_AGREE("11"),
    /** 【P2P提现到银行卡】 审核拒绝 */
    _01301_AUDIT_REFUSE("12"),
    /** 【P2P提现到国付宝】 */
    _01311_APPLY("1"),
    
    /** 【返润】正常流程 */
    _01400_DEFAULT("1"),
    
    /** 【手机钱包 个人扫商户】正常流程 */
    _01601_DEFAULT("1"),
    
    /** 【手机钱包 商户扫个人】正常流程 */
    _01602_DEFAULT("1"),
    
    /** 【手机钱包 个人扫个人】正常流程 */
    _01603_DEFAULT("1"),
    
    /** 【手机钱包 商户扫商户】正常流程 */
    _01604_DEFAULT("1"),
    
    /** 【手机钱包 手机转账到银行】 申请 */
    _01605_APPLY("1"),
    /** 【手机钱包 手机转账到银行】 审核通过 */
    _01605_AUDIT_AGREE("11"),
    /** 【手机钱包 手机转账到银行】 审核拒绝 */
    _01605_AUDIT_REFUSE("12"),
    
    /** 【手机钱包 手机信用卡还款】 申请 */
    _01606_APPLY("1"),
    /** 【手机钱包 手机信用卡还款】 审核通过 */
    _01606_AUDIT_AGREE("11"),
    /** 【手机钱包 手机信用卡还款】 审核拒绝 */
    _01606_AUDIT_REFUSE("12"),
    
    /** 【手机钱包 我要收款】正常流程 */
    _01607_DEFAULT("1"),
    
    /** 【手机钱包 发红包】正常流程 */
    _01608_DEFAULT("1"),
    
    /** 【手机钱包 领红包】正常流程 */
    _01609_DEFAULT("1"),

    /** 【手机钱包 领口令红包】正常流程 */
    _01609_PASSWORD("2"),
    
    /** 【手机钱包 红包退款】正常流程 */
    _01610_DEFAULT("1"),
    

    /** 【手机钱包 话费充值】正常流程  扣款成功*/
    _01611_DEFAULT("1"),
    /** 【手机钱包 话费充值】正常流程 充值完成*/
    _01611_CHARGE_SUCC("11"),
    /** 【手机钱包 话费充值】正常流程 充值失败*/
    _01611_CHARGE_FAIL("12"),

    /** 【手机钱包 流量充值】正常流程 */
    _01612_APPLY("11"),
    
    /** 【手机钱包 流量充值】正常流程 */
    _01612_CONFIRM("12"),
    
    /** 【手机钱包 流量充值】正常流程 */
    _01612_REJECT("13"),
    
    /** 【手机钱包 加油卡充值】正常流程 */
    _01613_APPLY("11"),
    
    /** 【手机钱包 加油卡充值】正常流程 */
    _01613_CONFIRM("12"),
    
    /** 【手机钱包 加油卡充值】正常流程 */
    _01613_REJECT("13"),

    /** 【手机钱包 一分钱支付】正常流程 */
    _01614_confirm("1"),
    
    /** 【手机钱包 天溢盈兑付国付宝】 正常流程 */
    _01616_APPLY("1"),
    /** 【手机钱包 天溢盈兑付】 申请 */
    _01617_APPLY("1"),
    /** 【手机钱包 天溢盈兑付】 审核通过 */
    _01617_AUDIT_AGREE("11"),
    /** 【手机钱包 天溢盈兑付】 审核拒绝 */
    _01617_AUDIT_REFUSE("12"),
    
    
	/** 【G商融通还款】 */
	_01905_APPLY("1"),
	/** 【G商融通转账】  */
	_01302_APPLY("1"),
	/** 【G商融通流标】  */
	_01903_APPLY("1"),
	
	/** 【G商融通放款】 申请 */
    _01904_APPLY("1"),
    /** 【G商融通回款】 申请 */
    _01906_APPLY("1"),
	/** 【G商融通放款】 投标 */
	_01902_APPLY("1"),
    
    /** 【云账户 冻结金额】正常流程 */
    _01807_DEFAULT("1"),
    /** 【云账户 解冻金额】正常流程 */
    _01808_DEFAULT("1"),
    /** 【云账户 转账冻结    转账成功】正常流程 */
    _01809_DEFAULT("1"),
    /** 【云账户 转账冻结    冻结成功】正常流程 */
    _01809_CONMIT_SUCCESS("11"),
    
    /** 【云账户 转账冻结    冻结失败】正常流程 */
    _01809_CONMIT_FAIL("12"),
    
    _01810_DEFAULT("1"),
    /** 【云账户 解冻成功】正常流程 */
    _01811_THAW("1"),
    /** 【云账户 解冻成功】正常流程 */
    _01811_CONMIT_SUCESS("11"),
     /** 【云账户 解冻失败】正常流程 */
    _01811_CONMIT_FAIL("12"),
    /** 【云账户 转账】正常流程 */

    _01812_DEFAULT("1"),

    /** 对公鉴权 正常流程 */
    _01817_DEFAULT("1"),

    /** 【手续费计提】 申请 */
    _02100_APPLY("1"),
    /** 【手续费计提】 审核通过 */
    _02100_AUDIT_AGREE("11"),
    /** 【手续费计提】 审核拒绝 */
    _02100_AUDIT_REFUSE("12"),

    /** 【存管资金结算】 申请 */
    _02200_APPLY("1"),
    /** 【存管资金结算】 审核通过 */
    _02200_AUDIT_AGREE("11"),

    /* ***************基金业务 start  update by jianghoupeng   20180103        ********** **/
    /** 【基金支付申购扣款】正常流程 */
    _02004_FUND_SR_PAY("1"),
    /** 【国付宝转基金】 申请 */
    _02016_APPLY("1"),
    /** 【基金转国付宝】 申请 */
    _02018_APPLY("1"),
    /**商财通转出基金内转**/
    _02014_APPLY("1"),
    /**商财通基金退款**/
    _02015_APPLY("1"),
    /**活期宝转出 **/
    _02020_APPLY("1"),
    /**活期宝退款 **/
    _02021_APPLY("1"),
    /**活期宝快速赎回去付款记账点 **/
    _02020_SETTLE("11"),
    /** 【活期宝转入申购扣款】正常流程 */
    _02019_FUND_SR_PAY("1"),
    /** 【商财通转入申购扣款】正常流程 */
    _02013_FUND_SR_PAY("1"),
   /* ***************基金业务 end  update by jianghoupeng  20180103         ********** **/

    /** 【委托代收银行卡鉴权】 正常流程*/
    _00664_DEFAULT("1"),
    /** 【委托代收交易】*/
    _00666_DEFAULT("1"),
    
    /** 【跨境人民币】跨境人民币正常流程 */
    _01720_DEFAULT("1"),

    /**跨境人民币出口申请  */
    _01721_APPLY("1"),
    /** 跨境人民币出口 审核通过 */
    _01721_AUDIT_AGREE("11"),
    

    /** 【跨境人民币出口】 审核拒绝 */
    _01721_AUDIT_REFUSE("12"),
    
    /**跨境人民币结汇支付  */
    _01722_PAY_SUCCEED("1"),
    
    /** 【跨境人民币留学汇款】支付成功 */
    _01723_PAY_SUCCEED("1"),
    /** 【跨境人民币留学汇款】汇款成功*/
    _01723_REMIT_SUCCEED("11"),
    /** 【跨境人民币汇款】审核通过*/
    _01723_AUDIT_AGREE("21"),
    /** 【跨境人民币汇款】审核拒绝*/
    _01723_AUDIT_REFUSE("22"),
    
    /** 【跨境人民币汇款】支付成功 */
    _01724_PAY_SUCCEED("1"),
    /** 【跨境人民币汇款】汇款成功*/
    _01724_REMIT_SUCCEED("11"),
    /** 【跨境人民币汇款】审核通过*/
    _01724_AUDIT_AGREE("21"),
    /** 【跨境人民币汇款】审核拒绝*/
    _01724_AUDIT_REFUSE("22"),
    
    /** 【跨境汇款-线下付款】支付成功 */
    _01725_PAY_SUCCEED("1"),
    /** 【跨境汇款线下付款】汇款成功*/
    _01725_REMIT_SUCCEED("11"),
    /** 【跨境汇款线下付款】 审核通过 */
    _01725_AUDIT_AGREE("21"),
    /** 【跨境汇款线下付款】审核拒绝*/
    _01725_AUDIT_REFUSE("22"),
    
	/** 【跨境人民币】跨境汇款发起退款 */
    _01728_DEFAULT("1"),
    
	/** 【跨境人民币】留学汇款发起退款 */
    _01730_DEFAULT("1"),
    
    
    /** 【跨境人民币提现】 申请 */
    _01726_APPLY("1"),
    /** 【跨境人民币提现】 审核通过 */
    _01726_AUDIT_AGREE("11"),
    /** 【跨境人民币提现】 审核拒绝 */
    _01726_AUDIT_REFUSE("12"),
    /**
     * [跨境人民币提现]付款成功
     */
    _01726_DRAW_SUCCESS("21"),
    
    /** 【跨境人民币提现退款】 申请 */
    _01729_APPLY("1"),
    /** 【跨境人民币提现退款】 审核通过 */
    _01729_AUDIT_AGREE("11"),
    /** 【跨境人民币提现退款】 审核拒绝 */
    _01729_AUDIT_REFUSE("12"),
    
	/** 【跨境人民币进口退款】  申请*/
    _01727_APPLY("1"),
    /** 【跨境人民币进口退款】 审核通过 */
    _01727_AUDIT_AGREE("11"),
    /** 【跨境人民币进口退款】 审核拒绝 */
    _01727_AUDIT_REFUSE("12"),

    /** 【跨境人民币跨境汇款退款】 审核通过 */
    _01728_AUDIT_AGREE("11"),
    /** 【跨境人民币跨境汇款退款】 审核拒绝 */
    _01728_AUDIT_REFUSE("12"),
    /** 【跨境人民币跨境汇款退款】 已支付的发起 */
    _01728_YIZHIFU_FQ("21"),

    /** 【跨境人民币跨境汇款退款】 已付款的发起 */
    _01728_YIFUKUANG_FQ("31"),

    /** 【跨境人民币留学汇款退款】 审核通过 */
    _01730_AUDIT_AGREE("11"),
    /** 【跨境人民币留学汇款退款】 审核拒绝 */
    _01730_AUDIT_REFUSE("12"),
    /** 【跨境人民币留学汇款退款】 已支付的发起 */
    _01730_YIZHIFU_FQ("21"),
    /** 【跨境人民币留学汇款退款】 已付款的发起 */
    _01730_YIFUKUANG_FQ("22"),

    /** 【跨境人民币汇款充值退款】 申请 */
    _01733_APPLY("1"),
    /** 【跨境人民币汇款充值退款】 审核通过 */
    _01733_AUDIT_AGREE("11"),
    /** 【跨境人民币汇款充值退款】 审核拒绝 */
    _01733_AUDIT_REFUSE("12"),
    
    /** 【跨境人民币汇款充值】 正常流程 */
    _01732_DEFAULT("1"),
    /** 【跨境人民币汇款充值】 重复支付 */
    _01732_REPEAT_PAY("2"),
    /** 【跨境人民币进口分账】 正常流程 */
    _01736_DEFAULT("1"),

    /** 【跨境人民币进口分账退款】申请 */
    _01737_APPLY("1"),
    /** 【跨境人民币进口分账退款】审核通过 */
    _01737_AUDIT_AGREE("11"),
    /** 【跨境人民币进口分账退款】审核拒绝 */
    _01737_AUDIT_REFUSE("12"),
    
    /** 【跨境人民币 外卡】成功 */
    _01740_SUCCEED("1"),
    
    /** 【跨境人民币 外卡】180天以后退保证金 */
	_01740_FROZEN_SUCCEED("11"),

    /** 【外卡账户提现】 申请 */
    _01741_APPLY("1"),
    /** 【外卡账户提现】 审核通过 */
    _01741_AUDIT_AGREE("11"),
    /** 【外卡账户提现】 审核拒绝 */
    _01741_AUDIT_REFUSE("12"),



    /** 【跨境人民币外卡支付退款】申请 */
    _01742_APPLY("1"),
    /** 【跨境人民币外卡支付退款】审核通过 */
    _01742_AUDIT_AGREE("11"),
    /** 【跨境人民币外卡支付退款】审核拒绝 */
    _01742_AUDIT_REFUSE("12"),
    /** 【跨境人民币外卡支付退款】退款成功 */
    _01742_SUCCESS("111"),

    /** 【跨境人民币外卡支付拒付】申请 */
    _01743_APPLY("1"),
    /** 【跨境人民币外卡支付拒付】申诉发起 */
    _01743_APPEAL("11"),
    /** 【跨境人民币外卡支付拒付】未发起申诉7天后扣款 */
    _01743_DONT_APPEAL("12"),
    /** 【跨境人民币外卡支付拒付】申诉失败 */
    _01743_APPEAL_REFUSE("111"),

    /** 【跨境人民币外卡支付调单】申请 */
    _01744_APPLY("1"),

    /** 【分润到银行】记账点*/
    _00703_DEFAULT("1"),
    /** 【返点】记账点**/
    _00705_DEFAULT("1"),
    /** 【强制扣款】 制单申请 */
    _00704_APPLY("1"),
    /** 【强制扣款】 付款审核通过 */
    _00704_AUDIT_AGREE("11"),
    /** 【强制扣款】 审核拒绝（制单审核、付款初审、付款终审） */
    _00704_AUDIT_REFUSE("12"),

    /**【分润到国付宝】记账点*/

    _00702_DEFAULT("1"),
	/**【聚合支付】记账点*/
	_02301_DEFAULT("1"),
    /**【聚合支付】重复支付记账点*/
    _02301_REPEAT_PAY("2"),

    /**【小额免密支付撤销】记账点*/
	_02302_DEFAULT("1"),
	_02302_COMPLETE("11"),
	_02302_FAIL("12"),

    /** 【云账户子账户收款】正常流程 */
    _01813_DEFAULT("1"),
    /** 【云账户子账户收款】重复支付 */
    _01813_REPEAT_PAY("2"),

    /** 【手机钱包 视频会员充值】 申请 */
    _01618_APPLY("1");

    public final String value;

    AccountingPoint(String value) {
        this.value = value;
    }

    @Override
	public String toString() {
        return this.value;
    }

    /**
     * 根据内部交易码返回记账点
     */
    public static AccountingPoint get(IntTxnCd intTxnCd) {
        if (IntTxnCd._00100.equals(intTxnCd)) {
            return AccountingPoint._00100_DEFAULT;
        } else if (IntTxnCd._00500.equals(intTxnCd)) {
            return AccountingPoint._00500_DEFAULT;
        } else if (IntTxnCd._01300.equals(intTxnCd)) {
            return AccountingPoint._01300_DEFAULT;
        } else if (IntTxnCd._01732.equals(intTxnCd)) {
            return AccountingPoint._01732_DEFAULT;
        } else if (IntTxnCd._02301.equals(intTxnCd)) {
            return AccountingPoint._02301_DEFAULT;
        } else if (IntTxnCd._01720.equals(intTxnCd)) {
            return AccountingPoint._01720_DEFAULT;
        }  else {
            throw new RuntimeException("尚未定义内部交易码[" + intTxnCd
                    + "]和记账点的对应！ the map of intTxnCd to acctPointDef is undefined.");
        }
    }

    /**
     * 根据内部交易码返回记账点，重复支付记账点
     */
    public static AccountingPoint getRePayAccountingPoint(IntTxnCd intTxnCd) {
        if (IntTxnCd._00100.equals(intTxnCd)) {
            return AccountingPoint._00100_REPEAT_PAY;
        } else if (IntTxnCd._00500.equals(intTxnCd)) {
            return AccountingPoint._00500_REPEAT_PAY;
        } else if (IntTxnCd._00400.equals(intTxnCd)) {
            return AccountingPoint._00400_REPEAT_PAY;
        } else if (IntTxnCd._09900.equals(intTxnCd)) {
            return AccountingPoint._09900_APPLY;
        } else if (IntTxnCd._09901.equals(intTxnCd)) {
            return AccountingPoint._09901_APPLY;
        } else if (IntTxnCd._01300.equals(intTxnCd)) {
            return AccountingPoint._01300_REPEAT_PAY;
        } else if (IntTxnCd._01732.equals(intTxnCd)) {
            return AccountingPoint._01732_REPEAT_PAY;
        } else if (IntTxnCd._01720.equals(intTxnCd)) {
            return AccountingPoint._01720_DEFAULT;
        } else if(IntTxnCd._01813.equals(intTxnCd)) {
            return AccountingPoint._01813_REPEAT_PAY;
        } else if(IntTxnCd._02301.equals(intTxnCd)) {
            return AccountingPoint._02301_REPEAT_PAY;
        }
        else {
            throw new RuntimeException("尚未定义的重复支付记账点，内部交易码[" + intTxnCd
                    + "]！ the map of intTxnCd to acctPointDef is undefined.");
        }
    }
}
